package com.github.appintro;

/**
 * Sealed class to represent all the possible Page Transformers
 * offered by AppIntro.
 */
public abstract class AppIntroPageTransformerType {
    public static class Flow extends AppIntroPageTransformerType {
    }

    public static class Depth extends AppIntroPageTransformerType {
    }

    public static class Zoom extends AppIntroPageTransformerType {
    }

    public static class Fade extends AppIntroPageTransformerType {
    }

    public static class SlideOver extends AppIntroPageTransformerType {
    }

    public static class Parallax extends AppIntroPageTransformerType {
        private double titleParallaxFactor = 1.0;
        private double imageParallaxFactor = -1.0;
        private double descriptionParallaxFactor = 2.0;

        public final double getTitleParallaxFactor() {
            return this.titleParallaxFactor;
        }

        public final double getImageParallaxFactor() {
            return this.imageParallaxFactor;
        }

        public final double getDescriptionParallaxFactor() {
            return this.descriptionParallaxFactor;
        }

        public Parallax() {
        }

        public Parallax(double titleParallaxFactor, double imageParallaxFactor, double descriptionParallaxFactor) {
            this.titleParallaxFactor = titleParallaxFactor;
            this.imageParallaxFactor = imageParallaxFactor;
            this.descriptionParallaxFactor = descriptionParallaxFactor;
        }
    }
}
